package qplayas

/**
 * Servicio utilizado por los trabajos de quartz para actualizar la informacion de cordenadas
 * de las playas dadas de alta en la aplicacion.
 * 
 * */
class PlayaGeoJobService {

    static transactional = true

	/**
	 * Actualiza las cordenadas de una playa buscando por su nombre normalizado
	 * */
    def geoUpdate(beachNameNormalized,lat,lon) {
		def playa = Playa.findByNombreNormalizado(beachNameNormalized.toString())
		if (playa && !playa.posicion){
			def posicion = new Posicion(
				latitud:lat,
				longitud:lon,
			)		
			posicion.playa = playa
			posicion.save()
			playa.posicion = posicion
			if(playa.save()){
				println "GEO: Playa $beachNameNormalized GEOPOSICIONADA"
			} else {
			   playa.errors.allErrors.each{
				   println it.message
			   }
			}
		}
    }
}
